Cloudflareの有料版SSL証明書 Advanced Certificateをさくっと購入&適用してみる
CloudflareのエッジロケーションにCloudflareマネージドなSSL証明書を設置したい場合、無料のUniversal Certificate(以下、Universal)と有料のAdvanced Certificate(以下、Advanced。旧 Dedicated Certificate)の2種類があります。
デフォルトでは無料版のUniversalタイプが適用されます。
Cloudflareの無料版SSL証明書の使い方は下記記事で紹介しています。
https://dev.classmethod.jp/articles/end-to-end-ssl-with-cloudflare/
Universalタイプは無料で使える上に自動更新でワイルドカードにも対応しているため、ほとんどの場合それでまかなえてしまうのですが、いくつか注意事項があります。
UniversalタイプSSL証明書の注意事項
下記のような制限や注意事項があるため、一部のケースでは要件を満たせないことがあります。
- ルートドメイン、もしくは一階層のサブドメインのみに対応
- 例:
example.com
www.example.com
- ※
subsub.sub.example.com
には適用できない
- 例:
- DNSセットアップが[CNAME]モードの場合、各サブドメインはそれぞれ独自の証明書を自動発行する
- DNSセットアップモードを FULL ⇄ CNAMEで切り替える際、エッジSSL証明書が再発行されてしまい、サイト設計によってはダウンタイムが発生する可能性がある
- Cloudflare DNSのセットアップ方式については、中の人が書いてくれている下記の記事が詳しいです。
上記二点の問題を解決するため、今回は有料版証明書である Advanced タイプを購入してみます。
Advanced タイプを購入してみる
購入は非常に簡単です。
Cloudflareのダッシュボード → 右サイドバー[SSL/TLS] → [Edge Certificates] に移動し、 その後 [Order Advanced Certificate] をクリックします。
[Advanced Certificate Manager] を選択します。
まだアカウントに請求情報が設定されていない場合、次のページで支払い情報の入力が求められます。
購入が完了すると、[Edge Certificates] のページで [Type] が [Advanced] になっている証明書が確認できるかと思います。
もう一度 [Order Advanced Certificate] をクリックすると詳細情報を確認・変更できます。
例えばDNSセットアップモードが [CNAME] になっていて、NSレコードによる移譲を行なっていない場合などには、 [Status] が [Pending] となっており、自分でTXTレコードによる認証を行う必要がありますので、管理画面の表示に従ってDNS側で設定を完了します。
上記画面から少し待つと 証明書の [Status] が [Active] になり、下記のような表示になります。
上記で気がつくかと思いますが、既存の無料版Universalタイプの証明書は残り続け、Advancedがあらたに追加される形になります。
Cloudflare側の仕様として、同じホスト指名であればActiveなAdvancedタイプの証明書が優先的に自動適用されるため、管理者による証明書切り替えの手間や、いつ証明書を追加してもダウンタイムが発生しないのも嬉しいところです。
複数の証明書がある場合の優先順位については下記の記事で書いてくれています。
https://qiita.com/khayama/items/fd11f6d7341d0d81f34c#適用順位
さいごに
Advanced タイプはゾーンごとに月10ドル(記事執筆時点)で購入でき、配下のドメインを対象に、最大50のホストネームまたはワイルドカードに適用できます。
またAdvanced タイプでは、証明書の有効期間(最短14日〜1年まで)、検証方法(HTTP、TXTレコード、Eメール)、認証局(Let’s EncryptまたはDigicert)をユーザー側で選択することが可能です。
Advancedは価格もリーズナブルかつ設定も非常に簡単でメリットも多いため、ぜひ用途に応じて検討してみてください。